1. Field of the Invention
The invention generally relates to data manipulation devices used with computer systems, and more particularly, to a keyboard extension or stand alone device for entering data manipulation commands while the user has one hand on a pointing device and the other hand on the data manipulation device.
2. Description of the Related Art
Traditionally, keyboards have served as the main user interface for computer systems. In data entry applications, the user enters data by typing on the keyboard, and then editing and correcting the data using a pointing device and various data manipulation functions. Generally, data manipulation includes functions associated with editing, like deleting, moving, or changing the properties of blocks of data, and similar operations.
In most personal computers, a menu of manipulation functions is displayed by striking a particular key. Alternatively, in pointing device oriented programs, data manipulation functions are commonly executed using pull-down menus. In either case, the user picks an option from the displayed menu, causing a function to be executed or a sub-menu to be displayed. In some cases, the user must make his way through several levels of sub-menus to find and execute the desired function.
Although the menu method is intuitive and effective, it is also slow and inhibiting. To execute data manipulation commands from the keyboard, the user must frequently enter multiple key sequences, sometimes requiring both hands. As a result, the user must look away from the display to find the proper keys or remove his hand from the pointing device to enter the key sequence.
To speed up the editing process, many manufacturers and designers have provided keyboard equivalent sequences and menu accelerators. Keyboard equivalent sequences are sets of keys that allow the user to execute data manipulation functions by striking a few keys without using the menus. Often, designers assign keystroke sequences to execute the data manipulation functions according to the IBM Standard Application Architecture Common User Access Advanced Interface Design Guide (SAA/CUA), a set of guidelines and standards for standard functions in computer systems. When the keys of the assigned keystroke sequence is depressed, the computer receives a set of signals that indicate a particular operation to be performed on the designated data block, which the computer executes as if the operation were commanded using the menus. For example, the COPY function may be executed in a SAA/CUA standard system by holding the CTRL key down and then striking the INSERT key. When the second key is depressed, the computer system executes the COPY operation exactly as if the function were initiated using the slower menus, without the need to access the menus.
Similarly, menu accelerators allow the user to display a menu and sub-menus by striking a series of keys on the keyboard. With a menu accelerator key, the menus and sub-menus are opened individually by consecutively striking various keys. For example, in certain programs, depressing the ALT key displays a set of topic headings, depressing the E key opens the EDIT menu which includes the COPY function, and then pressing the C key executes the COPY function. Thus, the COPY function can be executed relatively quickly using the menu accelerator keys by consecutively striking the ALT, E, and C keys on the keyboard.
Although keyboard equivalent sequences and menu accelerators improve the speed of the data manipulation process, the system is still slower than the optimum. Ideally, the user has one hand on the pointing device to designate the data to be manipulated, and uses the other hand to perform the key strokes to execute the desired manipulation function. Unfortunately, the user has been hindered by having to remove his eyes from the display to find the proper keys, or by having to remove his hand from the pointing device to perform the key strokes. Consequently, the user's efficiency decreases as he hunts for the keys and moves his hands back and forth across the keyboard to depress the appropriate keys.
One solution to this problem would be to reassign the keyboard equivalent and menu accelerator keys to keys that are quickly accessible with the user's left hand. Much software, however, has been written in accordance with SAA/CUA conventions, and reassignment of the keyboard equivalent and menu accelerator keys would render these applications partially or completely inoperable.
Another solution would be to combine menu accelerators with pop-up menus that appear on the screen at the cursor location. This solution would reduce the amount of pointing device movement required by the user, and would probably improve user performance and satisfaction. Nonetheless, the user would still have to perform the necessary menu accelerator key strokes with the hand not on the pointing device, or remove his hand from the pointing device to strike the keys for menu accelerator operations.
Another potential solution has been provided by Logitech Inc., which has produced a mouse having three buttons. Like the buttons found on most mice, the first button is used for designating data or marking locations on the display. The other two buttons, on the other hand, may be assigned functions from a list of predetermined options, including some data manipulation functions like CUT, PASTE, and DELETE. By assigning functions to the other two buttons, the user can efficiently designate data blocks and perform certain operations entirely from the mouse. On the other hand, the number of functions is limited because only two programmable buttons are provided. Therefore, the user must frequently return to the conventional, awkward method of entering data manipulation commands on the keyboard for commands that are not available on the mouse buttons. Further, the buttons can be returned to their previous functions only by using the SHIFT key in combination. Although providing more buttons would improve the mouse's versatility, adding buttons would quickly overcrowd the surface of the mouse. A larger mouse would provide space for more buttons, but at the cost of maneuverability and aesthetic acceptability.
In addition, current trends in graphical interface standardization provide for assignment of particular functions for each button on three button mice. If the current trends are eventually adopted by the industry, the functions assigned to mouse buttons will normally be pre-defined and not configurable by the user or developer. Consequently, users will not be able to effectively perform data manipulation operations completely on the mouse, and will be required to revert to the keyboard.
Finally, some other software and hardware vendors have chosen to create modified keyboards that include additional keys specifically designed for the vendor's software. These keys are software specific and are located above or to the left of the standard keyboard. Although effective, the hardware modifications are for specific software and are not flexible enough to function with revised or different software. In addition, users are required to purchase the modified keyboard if they wish to use the additional keys, adding further expense for the user or the vendor. Consequently, optimal user efficiency has not been achievable without breaking from industry established standards.